package banco;

import java.sql.ResultSet;
import java.sql.SQLException; 
import java.sql.PreparedStatement;
import java.util.Vector;

import modelo.Pessoa;

public class BDPessoa extends Conexao{
	
	private String sql;
	private PreparedStatement comando;
	
	public Vector<Pessoa> selectAll() {
		
		super.getConexaoMySQL();
		ResultSet rs;
		sql = "Select * from Pessoa";
		Vector<Pessoa> resultados = new Vector<Pessoa>();
		try{			
			comando = connection.prepareStatement(sql);
			rs = comando.executeQuery();
			while (rs.next()) {  
	            Pessoa temp = new Pessoa();  
	           
	            temp.setCpf(rs.getLong("CPF"));  
	            temp.setNome(rs.getString("Nome"));  
	            temp.setDataNascimento(rs.getDate("DataNasc"));  
	            temp.setTelefone(rs.getLong("Telefone"));  
	            temp.setEndereco(rs.getString("Endereco"));
	         //   temp.setBairro(rs.getString("Bairro"));
	      //      temp.setEstado(rs.getString("Estado"));
	            resultados.add(temp);  
	         } 
			return resultados;
		}
		catch(SQLException e){
			//TODO Tratar erros
			return null;
		}
		finally{
			super.FecharConexao();
		}
		
		
	}

	public Pessoa selectCpf(Long cpf) {
		
		super.getConexaoMySQL();
		ResultSet rs;
		sql = "Select * from Pessoa where cpf = ?";		
		try{			
			comando = connection.prepareStatement(sql);
			comando.setLong(1, cpf);
			rs = comando.executeQuery();
			Pessoa temp = new Pessoa(); 
			while (rs.next()) {  	             
	           
	            temp.setCpf(rs.getLong("CPF"));  
	            temp.setNome(rs.getString("Nome"));  
	            temp.setDataNascimento(rs.getDate("DataNasc"));  
	            temp.setTelefone(rs.getLong("Telefone"));  
	            temp.setEndereco(rs.getString("Endereco"));
	       //     temp.setBairro(rs.getString("Bairro"));
	     //       temp.setEstado(rs.getString("Estado"));
	              
	         } 
			return temp;
		}
		catch(SQLException e){
			//TODO Tratar erros
			return null;
		}
		finally{
			super.FecharConexao();
		}
	}
	
	public boolean insert(Pessoa p){
		super.getConexaoMySQL();
		sql = "INSERT INTO Pessoa (CPF,Nome,DataNasc,Telefone,Celular,Endereco) VALUES (?,?,?,?,?,?)";
		
		try {
			
			comando = connection.prepareStatement(sql);
			comando.setLong(1, p.getCpf());
			comando.setString(2, p.getNome());
			comando.setDate(3, p.getDataNascimento());
			comando.setLong(4, p.getTelefone());
			comando.setLong(5, p.getCelular());
			comando.setString(6, p.getEndereco());
	//		comando.setString(6, p.getBairro());
	//		comando.setString(7, p.getEstado());
			
			comando.executeUpdate();
			return true;
			
		} 
		catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
			return false;
		}
		finally{
			super.FecharConexao();
		}
		
	}
}
